Skip to content

Add CITATION.cff to bump-version skill#320

Merged
igerber merged 2 commits intomainfrom
fix/bump-version-citation-cff
Apr 18, 2026
Merged

Add CITATION.cff to bump-version skill#320
igerber merged 2 commits intomainfrom
fix/bump-version-citation-cff

Conversation

@igerber
Copy link
Copy Markdown
Owner

@igerber igerber commented Apr 18, 2026

Summary

  • The /bump-version skill was updating six version-string locations but missing CITATION.cff, which carries both version: and date-released: fields.
  • This drift caused v3.1.2 to ship with CITATION.cff still pinned at 3.1.1 — the wrong metadata for any auto-citation tool (Zenodo, GitHub's "cite this repository" button, reference managers).
  • Adds CITATION.cff to the Version Locations table, the per-file update instructions in step 5, and the step-7 report summary. Adds a Note clarifying that date-released is set to today's date (same value as the CHANGELOG section header) and should be bumped manually if the release is actually cut on a different day.

Methodology references

  • N/A — workflow tooling only, no methodology or code changes.

Validation

  • No automated tests; this is a slash-command markdown file consumed by the agent at skill-invocation time.
  • Manual review confirms the CITATION.cff instructions align with the file's existing field format (version: "X.Y.Z" and date-released: "YYYY-MM-DD", both quoted strings).
  • The stale value currently on main (version: "3.1.1") will be corrected in a follow-up Zenodo-prep PR or the next /bump-version invocation, whichever lands first.

Security / privacy

  • Confirm no secrets/PII in this PR: Yes

Generated with Claude Code

The skill was updating six version-string locations but missing CITATION.cff,
which carries both version: and date-released: fields. This drift caused v3.1.2
to ship with CITATION.cff still pinned at 3.1.1 — the wrong metadata for any
auto-citation tool (Zenodo, GitHub "cite this repository", reference managers).

Adds CITATION.cff to the locations table, per-file update instructions, and the
final summary. Also adds a Note clarifying that date-released is set to today's
date (same value used for the CHANGELOG section header) and should be bumped
manually if the release is actually cut on a different day.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Overall Assessment

✅ Looks good

No estimators, identification assumptions, weighting rules, or inference code paths are touched in this diff, so there are no unmitigated P0/P1 methodology findings. I found one P2 maintainability gap in the new release-date instructions and one P3 docs/tests gap, but nothing that should block merge.

Executive Summary

  • No methodology surface changed. I checked docs/methodology/REGISTRY.md; this PR only updates the /bump-version release-management command.
  • The new CITATION.cff guidance matches the file’s current shape: the repo already stores quoted version and date-released fields in CITATION.cff:L10-L11.
  • Severity: P2. The new prompt tells the agent to use “today’s date” for CITATION.cff, but step 3 can skip CHANGELOG generation entirely; on that branch there is no single derived RELEASE_DATE, so CITATION.cff can still drift from an existing CHANGELOG header. See .claude/commands/bump-version.md:L41-L45, .claude/commands/bump-version.md:L87-L91, and .claude/commands/bump-version.md:L128-L130.
  • Severity: P3. The PR adds a new metadata update path without any automated validation for the two relevant branches of /bump-version behavior.
  • No separate code quality, performance, security, or tech-debt blockers in the reviewed diff.

Methodology

  • Severity: None. Impact: No affected method(s); this PR does not modify estimators, math, weighting, variance/SE, identification assumptions, or defaults. Concrete fix: None.

Code Quality

  • Severity: None. Impact: The changed markdown is clear and the added CITATION.cff instructions align with the current repository file format. Concrete fix: None.

Performance

  • Severity: None. Impact: The diff is documentation/prompt-only and does not affect runtime behavior or algorithmic cost. Concrete fix: None.

Maintainability

  • Severity: P2. Impact: The new CITATION.cff instructions are only fully specified when step 4 runs. Step 3 explicitly skips step 4 when CHANGELOG.md already contains a populated ## [NEW_VERSION] section, but step 5 still says to update date-released using “today’s date,” and the note says that date should match the CHANGELOG header. That leaves the existing-CHANGELOG branch without a single source of truth for release date, so the command can still produce inconsistent release metadata across CHANGELOG.md and CITATION.cff. See .claude/commands/bump-version.md:L41-L45, .claude/commands/bump-version.md:L87-L91, .claude/commands/bump-version.md:L128-L130, and compare the date-bearing surfaces in CHANGELOG.md:L10-L10 and CITATION.cff:L10-L11. Concrete fix: Define a single RELEASE_DATE in the command. If the target CHANGELOG entry already exists, parse and reuse its header date; otherwise compute today’s date when generating the entry. Then use that same RELEASE_DATE for both the CHANGELOG header and CITATION.cff.

Tech Debt

  • Severity: None. Impact: I did not find an existing matching entry in TODO.md that would mitigate the release-date coupling issue above. Concrete fix: None required for this PR, but if you choose to defer the P2, track it explicitly in TODO.md.

Security

  • Severity: None. Impact: No secrets, credential handling, shell interpolation, or other security-sensitive behavior is added by this diff. Concrete fix: None.

Documentation/Tests

  • Severity: P3. Impact: The PR extends /bump-version to update CITATION.cff, but there is still no validation path that exercises the two important branches: “CHANGELOG entry already exists” versus “generate CHANGELOG entry.” Because this automation is prompt-driven markdown, ambiguous instructions are likely to surface only during release prep. Concrete fix: Add a lightweight smoke test or fixture-based review check for /bump-version that asserts the touched file set and verifies one consistent RELEASE_DATE is applied to both CHANGELOG.md and CITATION.cff in both branches.

CI review flagged P2 drift risk: step 3 can skip step 4 entirely when CHANGELOG
already has a populated [NEW_VERSION] entry, which meant step 5 fell back to
"today's date" for CITATION.cff even when CHANGELOG carried a different (earlier)
header date. Bump-version runs on a different day than CHANGELOG pre-population
would have produced inconsistent release metadata.

Fix: resolve RELEASE_DATE once in step 3 — parse the existing CHANGELOG header
date if the entry was pre-populated, otherwise use today's date — and thread
that single value through step 4 (CHANGELOG generation) and step 5 (CITATION.cff
date-released). Adds an abort path for malformed headers without a date. Updates
the Notes section to reflect the new single-source-of-truth model.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@igerber
Copy link
Copy Markdown
Owner Author

igerber commented Apr 18, 2026

/ai-review

@github-actions
Copy link
Copy Markdown

🔁 AI review rerun (requested by @igerber)

Head SHA: b0700c7e568fe525b4d85f419d00f72849099a63


Overall Assessment

✅ Looks good

The reviewed diff is confined to the /bump-version release-management command and resolves the prior release-date drift issue by introducing a single RELEASE_DATE source of truth. I found no unmitigated P0 or P1 issues in scope.

Executive Summary

Methodology

  • Severity: None. Impact: No affected method(s); this doc-only release workflow change does not modify any estimator or methodology surface in docs/methodology/REGISTRY.md:L1-L4. Concrete fix: None.

Code Quality

  • Severity: None. Impact: The added CITATION.cff update instructions are concrete and align with the actual file format in CITATION.cff:L10-L11, which reduces ambiguity rather than introducing it. Concrete fix: None.

Performance

  • Severity: None. Impact: Markdown-only command guidance does not affect library runtime behavior or algorithmic cost. Concrete fix: None.

Maintainability

Tech Debt

  • Severity: None. Impact: I did not find a matching mitigation entry in TODO.md:L51-L99 that changes the disposition of this diff; the only remaining issue is the informational validation gap below. Concrete fix: None required for merge.

Security

  • Severity: None. Impact: No new secret handling, credential flow, or security-sensitive execution path is introduced by this doc-only change. Concrete fix: None.

Documentation/Tests

  • Severity: P3. Impact: The PR still lacks automated validation for the two key step-3 branches: reusing an existing changelog header date versus generating a new one. Future edits to the slash-command could regress the RELEASE_DATE coupling without CI catching it. Concrete fix: Add a lightweight fixture or smoke test for /bump-version that exercises both branches and asserts one shared RELEASE_DATE is propagated to both CHANGELOG.md and CITATION.cff, based on .claude/commands/bump-version.md:L41-L53 and .claude/commands/bump-version.md:L95-L100.

@igerber igerber added the ready-for-ci Triggers CI test workflows label Apr 18, 2026
@igerber igerber merged commit 0009b5b into main Apr 18, 2026
1 of 2 checks passed
@igerber igerber deleted the fix/bump-version-citation-cff branch April 18, 2026 20:24
igerber added a commit that referenced this pull request Apr 18, 2026
…odo config

Packages five merged PRs since v3.1.2 as patch release 3.1.3:

- #311 Replicate-weight variance and PSU-level bootstrap for dCDH — new
  variance_method="replicate" (BRR / Fay / JK1 / JKn / SDR) and PSU-level
  multiplier bootstrap, with df-aware inference and group-level PSU map.
- #321 Zenodo DOI auto-minting config — .zenodo.json + top-level LICENSE
  so the next GitHub Release mints a concept + versioned DOI automatically.
- #319 Silent sparse->dense lstsq fallback signaling in ImputationDiD and
  TwoStageDiD — emits ConvergenceWarning instead of switching paths silently.
- #317 Non-convergence signaling in TROP alternating-minimization solvers,
  including LOOCV and bootstrap aggregation. Top-level warning aggregation.
- #320 /bump-version skill now updates CITATION.cff; single RELEASE_DATE
  resolved upfront and threaded through all date-bearing files.

Version strings bumped in diff_diff/__init__.py, pyproject.toml,
rust/Cargo.toml, diff_diff/guides/llms-full.txt, and CITATION.cff
(version: 3.1.3, date-released: 2026-04-18). CHANGELOG populated with
Added / Fixed / Changed sections and comparison-link footer.

Per project SemVer convention, minor bumps are reserved for new estimators
or new module-level API; additive extensions to existing estimators (like
PR #311's new variance_method values) are patch-level.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-ci Triggers CI test workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant